home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / bench / src / bench.bas next >
Encoding:
BASIC Source File  |  1995-08-11  |  18.5 KB  |  359 lines

  1. 10 CLEAR ,,,,700,400*1024:DEF FONT"システム   12ドット":SCREEN 1,0,3,0:CLS:SCREEN 1,1,3,0:VIEW:CLS:SCREEN 1,0,3,0:PALETTE
  2. 20 PALETTE 2,[160,100,230]:PALETTE 3,[120,10,180]:PALETTE 4,[200,200,200]:PALETTE 5,[255,255,0]:PALETTE 6,[120,255,120]
  3. 30 DIM WI%(10,10),WS%(10,10),F_PAT(128),F_PAT1(128),F_PAT2(128),F_PAT3(128),F_PAT4(512),ICON(300),ALERT(18),CAUTION(18),SCR%(150000),SCR2%(150000),RETSND%(20000),ALTSND%(20000)
  4. 40 SND=0 'サウンドファイルかサウンドメッセージか
  5. 50 FOR I=1 TO 7
  6. 60 READ A:FTIME(I)=A:NEXT
  7. 70 DATA 17,212,267,382,6,1006,70
  8. 80 LOAD@"cursor2.dat",F_PAT4:COLOR 7,0:CLS
  9. 90 LOAD@"alert.DAT",ICON:GOSUB *ALERTICON
  10. 100 IF SND THEN LOAD@"RESULT.SND",RETSND%
  11. 110 IF SND THEN LOAD@"ALERT.SND",ALTSND%
  12. 120 FOR I=0 TO 128:F_PAT(I)=F_PAT4(I):NEXT
  13. 130 FOR I=129 TO 256:F_PAT1(I-129)=F_PAT4(I):NEXT
  14. 140 FOR I=257 TO 384:F_PAT2(I-257)=F_PAT4(I):NEXT
  15. 150 FOR I=385 TO 512:F_PAT3(I-385)=F_PAT4(I):NEXT
  16. 160 MOS=0:INIT=-1:GOSUB *MOUSEINIT:INIT=0
  17. 170 COLOR 0,%4:CLS:BT_BOLD=1
  18. 180 WIN_X=120:WIN_Y=40:WINSIZ_X=400:WINSIZ_Y=320:TITLE$="ベンチマーク":TITLE_X=6:GOSUB *WINDOWDRAW
  19. 190 FOR I=1 TO 7
  20. 200 READ COL,TITLE_COL,TITLE_X,TITLE$,BT_X,BT_Y,BTSIZ_X,BTSIZ_Y,BTWIN_X,BTWIN_Y:GOSUB *BUTTONDRAW
  21. 210 GOSUB *BUTTONDRAW
  22. 220 WS%(0,I)=BT_X
  23. 230 WS%(1,I)=BT_Y
  24. 240 WS%(2,I)=BTSIZ_X
  25. 250 WS%(3,I)=BTSIZ_Y
  26. 260 NEXT
  27. 270 WS%(0,8)=WIN_X+2
  28. 280 WS%(1,8)=WIN_Y+2
  29. 290 WS%(2,8)=11
  30. 300 WS%(3,8)=11
  31. 310 DATA 7,0,50,"ALL",150,60,150,20,30,20
  32. 320 DATA 7,0,50,"CPU",150,100,150,20,30,80
  33. 330 DATA 7,0,35,"グラフィック",150,140,150,20,30,120
  34. 340 DATA 7,0,45,"テキスト",150,180,150,20,30,160
  35. 350 DATA 7,0,35,"CDドライブ",150,220,150,20,30,200
  36. 360 DATA 7,0,30,"ハードディスク",150,260,150,20,30,240
  37. 370 DATA 7,0,35,"FDドライブ",150,300,150,20,30,280
  38. 380 MX=MOUSE(0):MY=MOUSE(1):WHILE MOUSE(2,0)=0:WEND
  39. 390 GOSUB *BTCHECK
  40. 400 IF SEL AND MOUSE(2,0)=0 THEN FLAG=0:GOTO 430 
  41. 410 IF SEL AND MOUSE(2,0) THEN FLAG=0:BT=SEL:GOSUB *BTSELECT:GOTO 380 
  42. 420 GOTO 380
  43. 430 IF SEL<>8 THEN GOSUB *BLINK:WAIT 30
  44. 440 ON SEL GOSUB *ALL,*CPU,*GRA,*TXT,*CD,*HD,*FD,*END
  45. 450 SEL=0:GOTO 380
  46. 460 *WINDOWDRAW:WINMAX_X=WIN_X+WINSIZ_X:WINMAX_Y=WIN_Y+WINSIZ_Y:TITLE_X=TITLE_X+WIN_X+20
  47. 470 GET@A(WIN_X,WIN_Y)-(WINMAX_X,WINMAX_Y+2),SCR%
  48. 480 LINE(WIN_X,WIN_Y)-(WINMAX_X,WINMAX_Y+2),PSET,0,BF
  49. 490 LINE(WIN_X+1,WIN_Y+1)-(WINMAX_X-2,WINMAX_Y),PSET,7,BF
  50. 500 LINE(WIN_X+1,WIN_Y+1)-(WINMAX_X-2,WIN_Y+16),PSET,0,BF
  51. 510 LINE(WIN_X+121,WIN_Y+1)-(WINMAX_X-2,WIN_Y+15),PSET,%2,BF
  52. 520 LINE(WIN_X+2,WIN_Y+2)-(WIN_X+13,WIN_Y+2),PSET,7
  53. 530 LINE(WIN_X+2,WIN_Y+2)-(WIN_X+2,WIN_Y+13),PSET,7
  54. 540 LINE(WIN_X+2,WIN_Y+4)-(WIN_X+13,WIN_Y+4),PSET,7,,&HAAAA 
  55. 550 LINE(WIN_X+2,WIN_Y+6)-(WIN_X+13,WIN_Y+6),PSET,7,,&HAAAA 
  56. 560 LINE(WIN_X+2,WIN_Y+8)-(WIN_X+13,WIN_Y+8),PSET,7,,&HAAAA 
  57. 570 LINE(WIN_X+2,WIN_Y+10)-(WIN_X+13,WIN_Y+10),PSET,7,,&HAAAA 
  58. 580 LINE(WIN_X+2,WIN_Y+12)-(WIN_X+13,WIN_Y+12),PSET,7,,&HAAAA 
  59. 590 SYMBOL(TITLE_X,WIN_Y+2),TITLE$,.75!,.75!,7
  60. 600 RETURN
  61. 610 *BUTTONDRAW:BTMAX_X=BT_X+BTSIZ_X:BTMAX_Y=BT_Y+BTSIZ_Y
  62. 620 IF BT_BOLD THEN LINE(BT_X-1,BT_Y-1)-(BTMAX_X+1,BTMAX_Y+1),PSET,0,B
  63. 630 LINE(BT_X,BT_Y)-(BTMAX_X,BTMAX_Y),PSET,%COL,BF
  64. 640 LINE(BT_X,BTMAX_Y-1)-(BTMAX_X,BTMAX_Y),PSET,0,BF
  65. 650 LINE(BTMAX_X-1,BTMAX_Y)-(BTMAX_X,BT_Y+2),PSET,0,BF
  66. 660 LINE(BT_X,BT_Y)-(BTMAX_X,BT_Y+1),PSET,7,BF
  67. 670 LINE(BT_X,BT_Y)-(BT_X+1,BTMAX_Y),PSET,7,BF
  68. 680 PSET(BTMAX_X,BT_Y+1),0
  69. 690 PSET(BT_X+1,BTMAX_Y),0
  70. 700 SYMBOL(BT_X+TITLE_X+2,BT_Y+5),TITLE$,.75!,.75!,TITLE_COL
  71. 710 BT_X(BT_NO)=BT_X:BT_Y(BT_NO)=BT_Y:BTSIZ_X(BT_NO)=BTMAX_X:BTSIZ_Y(BT_NO)=BTMAX_Y:RETURN
  72. 720 *BTCHECK
  73. 730 FOR K=1 TO 8
  74. 740 IF (MX=>WS%(0,K) AND MX=<WS%(0,K)+WS%(2,K)) AND (MY=>WS%(1,K) AND MY=<WS%(1,K)+WS%(3,K)) THEN SEL=K:RETURN 
  75. 750 NEXT
  76. 760 SEL=0:RETURN
  77. 770 *BTSELECT
  78. 780 IF BTRET AND BTRET<>SEL THEN LINE(WS%(0,BTRET),WS%(1,BTRET))-(WS%(0,BTRET)+WS%(2,BTRET),WS%(1,BTRET)+WS%(3,BTRET)),XOR,7,BF
  79. 790 IF BTRET<>SEL THEN LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF
  80. 800 BTRET=SEL
  81. 810 RETURN
  82. 820 *ALL
  83. 830 SEL=2:GOSUB *ALLBLINK:GOSUB *CPU
  84. 840 SEL=3:GOSUB *ALLBLINK:GOSUB *GRA
  85. 850 SEL=4:GOSUB *ALLBLINK:GOSUB *TXT
  86. 860 LINE(WS%(0,1),WS%(1,1))-(WS%(0,1)+WS%(2,1),WS%(1,1)+WS%(3,1)),XOR,7,BF:RETURN
  87. 870 *CPU
  88. 880 FOR I=0 TO 8:RET(I)=0:NEXT
  89. 890 WIN_X=10:WIN_Y=10:WINSIZ_X=600:WINSIZ_Y=400:TITLE$="CPU":TITLE_X=25:GOSUB *WINDOWDRAW
  90. 900 RANDOMIZE TIME:DIM DAT(20000):FOR I=1 TO 390:DAT(I)=INT(RND*500):NEXT
  91. 910 MOS=1:GOSUB *MOUSEINIT
  92. 920 FOR Y=0 TO 383 \ 13:FOR X=0 TO 13:DAT$=RIGHT$("  "+STR$(DAT(Y*13+X)),3)+"    ":SYMBOL(WIN_X+X*36+46,WIN_Y+20+Y*12),DAT$,.75!,.75!,0:NEXT:NEXT
  93. 930 N=390:M=N:SYMBOL(WINMAX_X-200,WIN_Y+2),"ソート中です",.75!,.75!,1:TIME$="00:00:00"
  94. 940 FOR CHECK=M/2 TO 1 STEP -1
  95. 950 GOSUB *GODOWN
  96. 960 NEXT
  97. 970 '
  98. 980 WHILE M>1 
  99. 990 SWAP DAT(M),DAT(1)
  100. 1000 M=M-1
  101. 1010 '
  102. 1020 CHECK=1:GOSUB *GODOWN
  103. 1030 WEND
  104. 1040 '
  105. 1050 GOTO 1190
  106. 1060 *GODOWN
  107. 1070 I=CHECK
  108. 1080 J=I*2:F_END=0
  109. 1090 WHILE J<=M AND F_END=0
  110. 1100 IF J<M THEN IF DAT(J)<DAT(J+1) THEN J=J+1
  111. 1110 IF DAT(I)>DAT(J) THEN
  112. 1120  F_END=1
  113. 1130 ELSE
  114. 1140  SWAP DAT(I),DAT(J)
  115. 1150  I=J:J=I*2
  116. 1160 ENDIF
  117. 1170 WEND
  118. 1180 RETURN
  119. 1190 LINE(WINMAX_X-200,WIN_Y+2)-(WINMAX_X-2,WIN_Y+13),PSET,%2,BF
  120. 1200 LINE(WIN_X+40,WIN_Y+20)-(WINMAX_X-2,WINMAX_Y-2),PSET,7,BF
  121. 1210 FOR Y=0 TO 383 \ 13:FOR X=0 TO 13:DAT$=RIGHT$("  "+STR$(DAT(Y*13+X)),3)+"    ":SYMBOL(WIN_X+X*36+46,WIN_Y+20+Y*12),DAT$,.75!,.75!,0:NEXT:NEXT
  122. 1220 MOS=0:GOSUB *MOUSEINIT
  123. 1230 TS=VAL(RIGHT$(TIME$,2)):TM=VAL(MID$(TIME$,4,2)):SYMBOL(WINMAX_X-200,WIN_Y+2),"ソートは無事終了しました",.75!,.75!,1:WAIT 100
  124. 1240 PUT@A(WIN_X,WIN_Y)-(WINMAX_X,WINMAX_Y+2),SCR%:ERASE DAT
  125. 1250 LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF
  126. 1260 BTRET=0:SEL=0:RET(SEL)=TS:RETTYPE(SEL)=1:GOSUB *HANTEI
  127. 1270 RETURN
  128. 1280 *GRA
  129. 1290 SCREEN 1,0,3,0:GET@A(0,0)-(640,480),SCR%
  130. 1300 WIN_X=300:WIN_Y=150:WINSIZ_X=300:WINSIZ_Y=250:TITLE$="グラフィック":TITLE_X=10:GOSUB *WINDOWDRAW
  131. 1310 LINE (302,168)-(597,399),PSET,0,BF
  132. 1320 SYMBOL(WINMAX_X-120,WIN_Y+2),"テスト中です",.75!,.75!,1
  133. 1330 MOS=1:GOSUB *MOUSEINIT
  134. 1340 SCREEN 1,1,3,0:VIEW (302,168)-(597,399),0,7
  135. 1350 SCREEN 1,0,3,0:SYMBOL(WINMAX_X-80,WIN_Y+20),"Write Ovals",.75!,.75!,%2
  136. 1360 TIME$="00:00:00":SCREEN 1,1,3,0:
  137. 1370 WHILE TIME$<"00:00:03"
  138. 1380 CIRCLE(INT(RND*640),INT(RND*480)),INT(RND*100)+2,INT(RND*6)+1,RND,,,F
  139. 1390 O=O+1
  140. 1400 WEND
  141. 1410 MOS=0:GOSUB *MOUSEINIT
  142. 1420 LINE(0,0)-(640,480),PSET,0,BF:SCREEN 1,0,3,0:LINE(302,168)-(597,399),PSET,0,BF:RET(TS)=O:RETTYPE(SEL)=2:GOSUB *HANTEI
  143. 1430 MOS=1:GOSUB *MOUSEINIT
  144. 1440 SCREEN 1,0,3,0:SYMBOL(WINMAX_X-80,WIN_Y+20),"Write Lines",.75!,.75!,%2
  145. 1450 TIME$="00:00:00":SCREEN 1,1,3,0:PALETTE
  146. 1460 WHILE TIME$<"00:00:03"
  147. 1470 LINE(INT(RND*640),INT(RND*480))-(INT(RND*640),INT(RND*480)),PSET,INT(RND*6)+1
  148. 1480 L=L+1
  149. 1490 WEND
  150. 1500 MOS=0:GOSUB *MOUSEINIT
  151. 1510 LINE(0,0)-(640,480),PSET,0,BF:SCREEN 1,0,3,0:LINE(302,168)-(597,399),PSET,0,BF:RET(TS)=L:RETTYPE(SEL)=3:GOSUB *HANTEI
  152. 1520 MOS=1:GOSUB *MOUSEINIT
  153. 1530 SCREEN 1,0,3,0:SYMBOL(WINMAX_X-60,WIN_Y+20),"Box Fill",.75!,.75!,%2
  154. 1540 TIME$="00:00:00":SCREEN 1,1,3,0:PALETTE
  155. 1550 WHILE TIME$<"00:00:03"
  156. 1560 LINE(INT(RND*640),INT(RND*480))-(INT(RND*640),INT(RND*480)),PSET,INT(RND*6)+1,BF
  157. 1570 B=B+1
  158. 1580 WEND
  159. 1590 MOS=0:GOSUB *MOUSEINIT
  160. 1600 LINE(0,0)-(640,480),PSET,0,BF:SCREEN 1,0,3,0:LINE(302,168)-(597,399),PSET,0,BF:RET(TS)=B:RETTYPE(SEL)=4:GOSUB *HANTEI
  161. 1610 MOS=1:GOSUB *MOUSEINIT
  162. 1620 SCREEN 1,0,3,0:SYMBOL(WINMAX_X-80,WIN_Y+20),"Paint Screen",.75!,.75!,%2
  163. 1630 TIME$="00:00:00":SCREEN 1,1,3,0:PALETTE
  164. 1640 WHILE TIME$<"00:00:03"
  165. 1650 PAINT(320,240),INT(RND*6)+1
  166. 1660 P=P+1
  167. 1670 WEND
  168. 1680 MOS=0:GOSUB *MOUSEINIT
  169. 1690 LINE(0,0)-(640,480),PSET,0,BF:SCREEN 1,0,3,0:RET(TS)=P:RETTYPE(SEL)=5:GOSUB *HANTEI
  170. 1700 LINE(WINMAX_X-120,WIN_Y+2)-(WINMAX_X-1,WIN_Y+15),PSET,%2,BF
  171. 1710 SYMBOL(WINMAX_X-150,WIN_Y+2),"テストが終了しました",.75!,.75!,1
  172. 1720 RET(TS)=P+B+L+O:RETTYPE(SEL)=6:GOSUB *HANTEI
  173. 1730 WAIT 20
  174. 1740 SCREEN 1,1,3,0:VIEW (0,0)-(639,479),0,0:SCREEN 1,0,3,0
  175. 1750 PUT@A(WIN_X,WIN_Y)-(WINMAX_X,WINMAX_Y+2),SCR%
  176. 1760 LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF
  177. 1770 BTRET=0:SEL=0
  178. 1780 RETURN
  179. 1790 *TXT
  180. 1800 L=0:WAIT 50:GET@A(0,0)-(640,480),SCR%
  181. 1810 SCREEN 0:COLOR 7,0:CLS:WIDTH 0
  182. 1820 PR$="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  183. 1830 TIME$="00:00:00"
  184. 1840 WHILE TIME$<"00:00:03"
  185. 1850 PRINT PR$;
  186. 1860 L=L+1
  187. 1870 WEND
  188. 1880 SCREEN 1,0,3,0:COLOR 0,%4:PUT@A(0,0)-(640,480),SCR%:INIT=-1:GOSUB *MOUSEINIT:INIT=0
  189. 1890 RET(TS)=L:RETTYPE(SEL)=7:GOSUB *HANTEI
  190. 1900 LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF
  191. 1910 BTRET=0:SEL=0
  192. 1920 RETURN
  193. 1930 *CD
  194. 1940 WIN_X=100:WIN_Y=170:WINSIZ_X=440:WINSIZ_Y=60:GOSUB *ALERT:ASK$="この機能は今のところ未サポートです":GOSUB *ASK
  195. 1945 'IF RET=0 THEN 1950
  196. 1946 'WIN_X=300:WIN_Y=150:WINSIZ_X=300:WINSIZ_Y=250:TITLE$="グラフィック":TITLE_X=10:GOSUB *WINDOWDRAW
  197. 1947 'LINE (302,168)-(597,399),PSET,0,BF
  198. 1948 'SYMBOL(WINMAX_X-120,WIN_Y+2),"テスト中です",.75!,.75!,1
  199. 1949 'LOAD@"cdtest#1.tif",(302,168)
  200. 1950 LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF
  201. 1960 BTRET=0:SEL=0
  202. 1970 RETURN
  203. 1980 *HD
  204. 1982 WIN_X=100:WIN_Y=170:WINSIZ_X=440:WINSIZ_Y=60:GOSUB *ALERT:ASK$="この機能は今のところ未サポートです":GOSUB *ASK
  205. 1985 LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF
  206. 1990 BTRET=0:SEL=0:RETURN
  207. 2000 *FD
  208. 2002 WIN_X=100:WIN_Y=170:WINSIZ_X=440:WINSIZ_Y=60:GOSUB *ALERT:ASK$="この機能は今のところ未サポートです":GOSUB *ASK
  209. 2005 LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF
  210. 2010 BTRET=0:SEL=0:RETURN
  211. 2020 *END
  212. 2030 MOUSE 5:CLS:WAIT 50:FOR I=31 TO 0 STEP -1:PALETTE 4,[I*8,I*8,I*8],1:NEXT:COLOR 7,0:SCREEN 0:CLS:END
  213. 2040 *BLINK
  214. 2050 FOR L=0 TO 5:LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF:WAIT 5:NEXT:RETURN
  215. 2060 *HANTEI
  216. 2070 GET@A(0,0)-(640,480),SCR2%
  217. 2080 IF RETTYPE(SEL)=1 THEN 
  218. 2090 GOSUB *RESULTWINDOW
  219. 2100 SYMBOL(240,120),"種目:CPUベンチマーク",.75!,.75!,3
  220. 2110 SYMBOL(160,155),"所要時間:",.75!,.75!,3
  221. 2120 SYMBOL(230,145),AKCNV$(RIGHT$(STR$(TM),LEN(STR$(TM))-1))+"′"+AKCNV$(RIGHT$(STR$(TS),LEN(STR$(TS))-1))+"″",1.5!,1.5!,7,,,5
  222. 2130 SYMBOL(160,170),"パフォーマンス度(初代比):",.75!,.75!,3,,,8
  223. 2140 SYMBOL(360,160),AKCNV$(RIGHT$(STR$(INT(FTIME(1)/TS*100)),LEN(STR$(INT(FTIME(1)/TS*100)))-1))+"%",1.5!,1.5!,7,,,5
  224. 2150 IF INT(FTIME(1)/TS+.5!)=1 THEN SYMBOL(355,185),"(初代とほぼ同等)",.75!,.75!,7,,,5:GOTO 2170
  225. 2160 SYMBOL(350,185),"(初代比    約"+AKCNV$(RIGHT$(STR$(INT(FTIME(1)/TS+.5!)),LEN(STR$(INT(FTIME(1)/TS+.5!)))-1))+"倍)",.75!,.75!,7,,,5
  226. 2170 SYMBOL(160,220),"※注  MXの互換モードとの比です。だから、初代機で",.75!,.75!,3,,,1
  227. 2180 SYMBOL(200,235),"100%以下がでたらごめんね。",.75!,.75!,3,,,1
  228. 2190 SYMBOL(160,260),"よかったら誰か初代機での時間を教えてくれませんか?",.75!,.75!,3,,,1
  229. 2200 GOSUB *MOUSECLICK
  230. 2210 ELSE IF RETTYPE(SEL)=2 THEN
  231. 2220 GOSUB *RESULTWINDOW
  232. 2230 SYMBOL(220,120),"種目:グラフィックベンチマーク",.75!,.75!,3
  233. 2240 SYMBOL(160,155),"Write Ovals:",.75!,.75!,3
  234. 2250 SYMBOL(250,142),AKCNV$(RIGHT$(STR$(O),LEN(STR$(O))-1))+"点",1.5!,1.5!,7,,,5
  235. 2260 SYMBOL(160,175),"パフォーマンス度(初代比):",.75!,.75!,3,,,8
  236. 2270 SYMBOL(360,170),AKCNV$(RIGHT$(STR$(INT(O/FTIME(2)*100)),LEN(STR$(INT(O/FTIME(2)*100)))-1))+"%",1.5!,1.5!,7,,,5
  237. 2280 IF INT(O/FTIME(2)+.5!)=1 THEN SYMBOL(355,195),"(初代とほぼ同等)",.75!,.75!,7,,,5:GOTO 2300
  238. 2290 SYMBOL(350,195),"(初代比    約"+AKCNV$(RIGHT$(STR$(INT(O/FTIME(2)+.5!)),LEN(STR$(INT(O/FTIME(2)+.5!)))-1))+"倍)",.75!,.75!,7,,,5
  239. 2300 SYMBOL(160,220),"※注  MXの互換モードとの比です。だから、初代機で",.75!,.75!,3,,,1
  240. 2310 SYMBOL(200,235),"100%以下がでたらごめんね。",.75!,.75!,3,,,1
  241. 2320 SYMBOL(160,260),"よかったら誰か初代機での得点を教えてくれませんか?",.75!,.75!,3,,,1
  242. 2330 GOSUB *WAIT
  243. 2340 ELSE IF RETTYPE(SEL)=3 THEN
  244. 2350 GOSUB *RESULTWINDOW
  245. 2360 SYMBOL(220,120),"種目:グラフィックベンチマーク",.75!,.75!,3
  246. 2370 SYMBOL(160,155),"Write Lines:",.75!,.75!,3
  247. 2380 SYMBOL(250,142),AKCNV$(RIGHT$(STR$(L),LEN(STR$(L))-1))+"点",1.5!,1.5!,7,,,5
  248. 2390 SYMBOL(160,175),"パフォーマンス度(初代比):",.75!,.75!,3,,,8
  249. 2400 SYMBOL(360,170),AKCNV$(RIGHT$(STR$(INT(L/FTIME(3)*100)),LEN(STR$(INT(L/FTIME(3)*100)))-1))+"%",1.5!,1.5!,7,,,5
  250. 2410 IF INT(L/FTIME(3)+.5!)=1 THEN SYMBOL(355,195),"(初代とほぼ同等)",.75!,.75!,7,,,5:GOTO 2430
  251. 2420 SYMBOL(350,195),"(初代比    約"+AKCNV$(RIGHT$(STR$(INT(L/FTIME(3)+.5!)),LEN(STR$(INT(L/FTIME(3)+.5!)))-1))+"倍)",.75!,.75!,7,,,5
  252. 2430 SYMBOL(160,220),"※注  MXの互換モードとの比です。だから、初代機で",.75!,.75!,3,,,1
  253. 2440 SYMBOL(200,235),"100%以下がでたらごめんね。",.75!,.75!,3,,,1
  254. 2450 SYMBOL(160,260),"よかったら誰か初代機での得点を教えてくれませんか?",.75!,.75!,3,,,1
  255. 2460 GOSUB *WAIT
  256. 2470 ELSE IF RETTYPE(SEL)=4 THEN
  257. 2480 GOSUB *RESULTWINDOW
  258. 2490 SYMBOL(220,120),"種目:グラフィックベンチマーク",.75!,.75!,3
  259. 2500 SYMBOL(160,155),"Box Fill:",.75!,.75!,3
  260. 2510 SYMBOL(250,142),AKCNV$(RIGHT$(STR$(B),LEN(STR$(B))-1))+"点",1.5!,1.5!,7,,,5
  261. 2520 SYMBOL(160,175),"パフォーマンス度(初代比):",.75!,.75!,3,,,8
  262. 2530 SYMBOL(360,170),AKCNV$(RIGHT$(STR$(INT(B/FTIME(4)*100)),LEN(STR$(INT(B/FTIME(4)*100)))-1))+"%",1.5!,1.5!,7,,,5
  263. 2540 IF INT(B/FTIME(4)+.5!)=1 THEN SYMBOL(355,195),"(初代とほぼ同等)",.75!,.75!,7,,,5:GOTO 2560
  264. 2550 SYMBOL(350,195),"(初代比    約"+AKCNV$(RIGHT$(STR$(INT(B/FTIME(4)+.5!)),LEN(STR$(INT(B/FTIME(4)+.5!)))-1))+"倍)",.75!,.75!,7,,,5
  265. 2560 SYMBOL(160,220),"※注  MXの互換モードとの比です。だから、初代機で",.75!,.75!,3,,,1
  266. 2570 SYMBOL(200,235),"100%以下がでたらごめんね。",.75!,.75!,3,,,1
  267. 2580 SYMBOL(160,260),"よかったら誰か初代機での得点を教えてくれませんか?",.75!,.75!,3,,,1
  268. 2590 GOSUB *WAIT
  269. 2600 ELSE IF RETTYPE(SEL)=5 THEN
  270. 2610 GOSUB *RESULTWINDOW
  271. 2620 SYMBOL(220,120),"種目:グラフィックベンチマーク",.75!,.75!,3
  272. 2630 SYMBOL(160,155),"Paint Screen:",.75!,.75!,3
  273. 2640 SYMBOL(250,142),AKCNV$(RIGHT$(STR$(P),LEN(STR$(P))-1))+"点",1.5!,1.5!,7,,,5
  274. 2650 SYMBOL(160,175),"パフォーマンス度(初代比):",.75!,.75!,3,,,8
  275. 2660 SYMBOL(360,170),AKCNV$(RIGHT$(STR$(INT(P/FTIME(5)*100)),LEN(STR$(INT(P/FTIME(5)*100)))-1))+"%",1.5!,1.5!,7,,,5
  276. 2670 IF INT(P/FTIME(5)+.5!)=1 THEN SYMBOL(355,195),"(初代とほぼ同等)",.75!,.75!,7,,,5:GOTO 2690
  277. 2680 SYMBOL(350,195),"(初代比    約"+AKCNV$(RIGHT$(STR$(INT(P/FTIME(5)+.5!)),LEN(STR$(INT(P/FTIME(5)+.5!)))-1))+"倍)",.75!,.75!,7,,,5
  278. 2690 SYMBOL(160,220),"※注  MXの互換モードとの比です。だから、初代機で",.75!,.75!,3,,,1
  279. 2700 SYMBOL(200,235),"100%以下がでたらごめんね。",.75!,.75!,3,,,1
  280. 2710 SYMBOL(160,260),"よかったら誰か初代機での得点を教えてくれませんか?",.75!,.75!,3,,,1
  281. 2720 GOSUB *WAIT
  282. 2730 ELSE IF RETTYPE(SEL)=6 THEN
  283. 2740 GOSUB *RESULTWINDOW
  284. 2750 SYMBOL(220,120),"種目:グラフィックベンチマーク",.75!,.75!,3
  285. 2760 SYMBOL(160,155),"トータルポイント:",.75!,.75!,3
  286. 2770 SYMBOL(270,142),AKCNV$(RIGHT$(STR$(O+L+B+P),LEN(STR$(O+L+B+P))-1))+"点",1.5!,1.5!,7,,,5
  287. 2780 SYMBOL(160,175),"パフォーマンス度(初代比):",.75!,.75!,3,,,8
  288. 2790 SYMBOL(360,170),AKCNV$(RIGHT$(STR$(INT((O+L+B+P)/FTIME(6)*100)),LEN(STR$(INT((O+L+B+P)/FTIME(6)*100)))-1))+"%",1.5!,1.5!,7,,,5
  289. 2800 IF INT((O+L+B+P)/FTIME(6)+.5!)=1 THEN SYMBOL(355,195),"(初代とほぼ同等)",.75!,.75!,7,,,5:GOTO 2820
  290. 2810 SYMBOL(350,195),"(初代比    約"+AKCNV$(RIGHT$(STR$(INT((O+L+B+P)/FTIME(6)+.5!)),LEN(STR$(INT((O+L+B+P)/FTIME(6)+.5!)))-1))+"倍)",.75!,.75!,7,,,5
  291. 2820 SYMBOL(160,220),"※注  MXの互換モードとの比です。だから、初代機で",.75!,.75!,3,,,1
  292. 2830 SYMBOL(200,235),"100%以下がでたらごめんね。",.75!,.75!,3,,,1
  293. 2840 SYMBOL(160,260),"よかったら誰か初代機での得点を教えてくれませんか?",.75!,.75!,3,,,1
  294. 2850 GOSUB *MOUSECLICK
  295. 2860 ELSE IF RETTYPE(SEL)=7 THEN
  296. 2870 GOSUB *RESULTWINDOW
  297. 2880 SYMBOL(240,120),"種目:テキストベンチマーク",.75!,.75!,3
  298. 2890 SYMBOL(160,155),"ポイント:",.75!,.75!,3
  299. 2900 SYMBOL(270,142),AKCNV$(RIGHT$(STR$(L),LEN(STR$(L))-1))+"点",1.5!,1.5!,7,,,5
  300. 2910 SYMBOL(160,175),"パフォーマンス度(初代比):",.75!,.75!,3,,,8
  301. 2920 SYMBOL(360,170),AKCNV$(RIGHT$(STR$(INT(L/FTIME(7)*100)),LEN(STR$(INT(L/FTIME(7)*100)))-1))+"%",1.5!,1.5!,7,,,5
  302. 2930 IF INT(L/FTIME(7)+.5!)=1 THEN SYMBOL(355,195),"(初代とほぼ同等)",.75!,.75!,7,,,5:GOTO 2820
  303. 2940 SYMBOL(350,195),"(初代比    約"+AKCNV$(RIGHT$(STR$(INT(L/FTIME(7)+.5!)),LEN(STR$(INT(L/FTIME(7)+.5!)))-1))+"倍)",.75!,.75!,7,,,5
  304. 2950 SYMBOL(160,220),"※注  MXの互換モードとの比です。だから、初代機で",.75!,.75!,3,,,1
  305. 2960 SYMBOL(200,235),"100%以下がでたらごめんね。",.75!,.75!,3,,,1
  306. 2970 SYMBOL(160,260),"よかったら誰か初代機での得点を教えてくれませんか?",.75!,.75!,3,,,1
  307. 2980 GOSUB *MOUSECLICK
  308. 2990 ENDIF
  309. 3000 PUT@A(0,0)-(640,480),SCR2%
  310. 3010 RETURN
  311. 3020 *ALLBLINK
  312. 3030 FOR L=0 TO 6:LINE(WS%(0,SEL),WS%(1,SEL))-(WS%(0,SEL)+WS%(2,SEL),WS%(1,SEL)+WS%(3,SEL)),XOR,7,BF:WAIT 5:NEXT:RETURN
  313. 3040 *RESULTWINDOW
  314. 3050 IF SND THEN PCMPLAY RETSND%,127 ELSE SMSGPLAY 4
  315. 3060 LINE(150,100)-(500,300),PSET,0,BF,%1
  316. 3070 LINE(150,300)-(500,301),PSET,0,BF
  317. 3080 LINE(500,100)-(501,301),PSET,0,BF
  318. 3090 SYMBOL(290,112),"~RESULT~",.375!,.375!,%2
  319. 3100 RETURN
  320. 3110 *ALERT
  321. 3120 IF SND THEN PCMPLAY ALTSND%,127 ELSE SMSGPLAY 5
  322. 3130 WINMAX_X=WIN_X+WINSIZ_X:WINMAX_Y=WIN_Y+WINSIZ_Y
  323. 3140 GET@A(0,0)-(640,480),SCR%:LINE (WIN_X,WIN_Y)-(WINMAX_X+1,WINMAX_Y+1),PSET,0,BF
  324. 3150 LINE(WIN_X,WIN_Y)-(WINMAX_X,WINMAX_Y),PSET,0,BF,%7:RETURN
  325. 3160 *ASK
  326. 3170 PUT@(WIN_X+5,WIN_Y+10)-(WIN_X+5+23,WIN_Y+10+23),ALERT,,%6
  327. 3180 SYMBOL(WIN_X+40,WIN_Y+20),ASK$,.75!,.75!,%5
  328. 3190 SYMBOL(WINMAX_X-250,WINMAX_Y-14),"OK!…左クリック  NG!…右クリック",.75!,.75!,0
  329. 3200 WHILE MOUSE(2,0)=0 AND MOUSE(2,1)=0:WEND
  330. 3210 IF MOUSE(2,0) THEN RET=1:GOTO 3240
  331. 3220 IF MOUSE(2,1) THEN RET=0:GOTO 3240
  332. 3230 GOTO 3210
  333. 3240 WHILE MOUSE(2,0) OR MOUSE(2,1):WEND:PUT@A(0,0)-(640,480),SCR%:RETURN
  334. 3250 *MOUSECLICK
  335. 3260 FLAG=-1:WHILE MOUSE(2,0)=0:PALETTE 0,[0,0,0],1
  336. 3270 IF FLAG=0 AND FLAG2=0 THEN LINE(160,280)-(490,299),PSET,%1,BF:FLAG2=-1
  337. 3280 IF FLAG AND FLAG2=0 THEN SYMBOL(220,280),"マウスを左クリックしてください。",.75!,.75!,3,,,8:FLAG2=-1
  338. 3290 IF I=30 THEN FLAG=NOT FLAG:FLAG2=0:I=0
  339. 3300 I=I+1:WEND
  340. 3310 WHILE MOUSE(2,0):WEND
  341. 3320 RETURN
  342. 3330 *WAIT
  343. 3340 FLAG=-1:WHILE I<=180:PALETTE 0,[0,0,0],1
  344. 3350 IF FLAG=0 AND FLAG2=0 THEN LINE(160,280)-(490,299),PSET,%1,BF:FLAG2=-1
  345. 3360 IF FLAG AND FLAG2=0 THEN SYMBOL(200,280),"しばらくお待ちください。先に進みます。",.75!,.75!,3,,,8:FLAG2=-1
  346. 3370 IF I MOD 30 = 0 THEN FLAG=NOT FLAG:FLAG2=0
  347. 3380 I=I+1:WEND
  348. 3390 I=0:RETURN
  349. 3400 *MOUSEINIT
  350. 3410 IF INIT THEN MOUSE 0,0
  351. 3420 IF MOS THEN MOUSE 6,0,F_PAT1,F_PAT
  352. 3430 IF MOS=0 THEN MOUSE 6,0,F_PAT3,F_PAT2
  353. 3440 IF INIT THEN MOUSE 1,320,240,1:RETURN ELSE MOUSE 1,,,1
  354. 3450 RETURN
  355. 3460 *ALERTICON
  356. 3470 FOR I=0 TO 18:ALERT(I)=ICON(I):NEXT
  357. 3480 FOR I=20 TO 38:CAUTION(I-20)=ICON(I):NEXT
  358. 3490 RETURN
  359.